Page({
    data:{
        leftMenuList:[ //左侧菜单列表数据
            {
                name:"现货专区",
                value:0
            },
            {
                name:"火爆专区",
                value:1
            },
            {
                name:"单点专区",
                value:2
            }
        ], 
        rightDataList:[ //右侧内容数据
            {
                id:0,
                content:"【厚礼蟹】 公蟹5两 母蟹4两8只装（四公四母）",
                selledNumber:10,
                price:230,
                number:0,
                checked:false
            },
            {
                id:1,
                content:"【厚礼蟹】 公蟹5两 母蟹4两8只装（四公四母）",
                selledNumber:2,
                price:150,
                number:0,
                checked:false
            },
            {
                id:2,
                content:"【厚礼蟹】 公蟹5两 母蟹4两8只装（四公四母）",
                selledNumber:6,
                price:360,
                number:0,
                checked:false
            },
            {
                id:3,
                content:"【厚礼蟹】 公蟹5两 母蟹4两8只装（四公四母）",
                selledNumber:3,
                price:270,
                number:0,
                checked:false
            },
            {
                id:4,
                content:"【厚礼蟹】 公蟹5两 母蟹4两8只装（四公四母）",
                selledNumber:11,
                price:180,
                number:0,
                checked:false
            },
            {
                id:5,
                content:"【厚礼蟹】 公蟹5两 母蟹4两8只装（四公四母）",
                selledNumber:19,
                price:220,
                number:0,
                checked:false
            },
            {
                id:6,
                content:"【厚礼蟹】 公蟹5两 母蟹4两8只装（四公四母）",
                selledNumber:6,
                price:420,
                number:0,
                checked:false
            }
        ],
        currentMenu:0, //当前所在专区
        rightContentTitle:"", //右侧内容区标题名称
        isSelectSell:false, //是否选择销量
        priceIndex:0, //价格区间：0表示默认，1表示价格由高到低，2表示价格由低到高
        cartObj:{ //当前购物车待支付的信息数据
            number:0,
            price:0
        }
    },
    onLoad(){
        this.getCartObj();
        this.setData({
            rightContentTitle:this.data.leftMenuList[0].name
        });
    },
    // 点击左侧菜单事件监听
    selectMenu(e:any){
        // console.log(e.currentTarget.dataset.index);
        let {index}=e.currentTarget.dataset;
        let currentMenu,rightContentTitle;
        this.data.leftMenuList.forEach((item)=>{
            if(item.value === index){
                currentMenu=item.value;
                rightContentTitle=item.name;
            };
        });
        this.setData({
            currentMenu,
            rightContentTitle,
            isSelectSell:false,
            priceIndex:0
        });
    },
    // 点击销量事件监听
    chooseSell(){
        // console.log(e);
        this.setData({
            isSelectSell:!this.data.isSelectSell
        });
    },
    // 点击价格事件监听
    choosePrice(){
        this.setData({
            priceIndex:this.data.priceIndex === 0 ? 1 :this.data.priceIndex === 1 ? 2 :0
        });
    },
    // 自定义组件点击加购按钮事件
    addCart(e:any){
        // console.log(e.detail);
        let carts=wx.getStorageSync("carts") || [];
        // 如果加入的这个商品在购物车中已经存在的话，就数量+1；
        if(carts.some((item:any)=>{ return item.id === e.detail.id })){
            carts.forEach((item:any)=>{
                if(item.id === e.detail.id){
                    item.number=item.number+1;
                    item.checked=true;
                };
            });
        }else{ //不存在的话就直接加入缓存中
            const data=this.data.rightDataList.find((item:any)=>{
                return item.id === e.detail.id;
            });
            carts.push({
                ...data,
                number:1,
                checked:true
            });
        };
        wx.setStorageSync("carts",carts);
        this.getCartObj();
        wx.showToast({
            title:"加入成功",
            icon:"success",
            mask:true
        });
    },
    // 自定义组件点击减购图标事件监听
    minusCart(e:any){
        let carts=wx.getStorageSync("carts") || [];
        // 如果加入的这个商品在购物车中已经存在的话，就数量-1；
        if(carts.some((item:any)=>{ return item.id === e.detail.id })){
            carts.forEach((item:any)=>{
                if(item.id === e.detail.id && item.number !==0){
                    item.number=item.number-1;
                };
            });
        };
        wx.setStorageSync("carts",carts);
        this.getCartObj();
    },
    // 计算购物车的总价格等事件监听
    getCartObj(){
        // 获取当前缓存中的数据
        let carts=wx.getStorageSync("carts") || [];
        if(carts.length === 0){

        }else{
            let number=0,price=0;
            carts.forEach((item:any)=>{
                number+=item.number;
                price+=(item.number*item.price);
                this.data.rightDataList.forEach((item1:any)=>{
                    if(item1.id === item.id){
                        item1.number=item.number;
                    };
                });
            });
            this.data.cartObj.number=number;
            this.data.cartObj.price=price;
            carts=carts.filter((item:any)=>{
                return item.number !==0;
            });
        };
        wx.setStorageSync("carts",carts);
        this.setData({
            cartObj:this.data.cartObj,
            rightDataList:this.data.rightDataList
        });
    }
});